﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ConsoleApplication4
{
    class Program
    {
        static void Main(string[] args)
        {
            //Комменты добавлены для наглядности!


            string ch;
            do
            {
                Console.Clear();
                Console.WriteLine("Используйте клавиши 1-4 для выбора задачи.");
                Console.WriteLine("1 - Задача №1");
                Console.WriteLine("2 - Задача №2");
                Console.WriteLine("3 - Задача №3");
                Console.WriteLine("4 - Задача №4");
                Console.WriteLine("5 - Задача №5");
                Console.WriteLine("6 - Задача 'Амебы'");
                Console.WriteLine("7 - Задача 'Натуральные числа'");
                Console.WriteLine("8 - Задача 'Банк'");
                Console.WriteLine("Выберете задачу:");
                int choose;
                choose = Int32.Parse(Console.ReadLine());

                switch (choose)
                {
                    case 1:
                        DoFirstTask();
                        break;
                    case 2:
                        DoSecondTask();
                        break;
                    case 3:
                        DoThirdTask();
                        break;
                    case 4:
                        DoFourthTask();
                        break;
                    case 5:
                        MaxNumber();
                        break;
                    case 6:
                        Amoebas();
                        break;
                    case 7:
                        NaturalNumbers();
                        break;
                    case 8:
                        BankSimplePercent();
                        break;

                    default:
                        Console.WriteLine("Неверный ввод!");
                        break;
                }
                Console.WriteLine("Хотите продолжить? y/n");
                ch = Console.ReadLine().ToLower();
            } while (ch == "y");

        }

        static void DoFirstTask()
        {
            Console.WriteLine("Двузначные числа кратные 5:");
            int i = 10;
            do
            {
                if (i % 5 == 0)
                {
                    Console.WriteLine(i);
                }
                i++;
            } while (i < 99);
        }

        static void DoSecondTask()
        {
            Console.WriteLine("Определите количество вводимых чисел:");
            int numberOfNulls = 0;
            int numberOfPositive = 0;
            int numberOfNegative = 0;
            int numberOfNumbers = Int32.Parse(Console.ReadLine());
            do
            {
                Console.WriteLine("Введите число:");
                int numberInput = Int32.Parse(Console.ReadLine());
                if (numberInput > 0)
                {
                    numberOfPositive++;
                }
                else if (numberInput < 0)
                {
                    numberOfNegative++;
                }
                else
                {
                    numberOfNulls++;
                }
                numberOfNumbers--;

            } while (numberOfNumbers > 0);
            Console.WriteLine("Количество положительных чисел: {0}", numberOfPositive);
            Console.WriteLine("Количество отрицательных чисел: {0}", numberOfNegative);
            Console.WriteLine("Количество нулей: {0}", numberOfNulls);

        }

        static void DoThirdTask()
        {
            Console.WriteLine("Введите число:");
            int number = Int32.Parse(Console.ReadLine());
            int digit = 0;
            int digitForSecondPart;
            int maxDigit = 0;
            int minDigit = 9;
            do
            {
                digitForSecondPart = number % 10;
                number = number / 10;
                if (digitForSecondPart > maxDigit)
                {
                    maxDigit = digitForSecondPart;
                }
                if (digitForSecondPart < minDigit)
                {
                    minDigit = digitForSecondPart;
                }
                digit++;
            } while (number > 0);

            Console.WriteLine("Количество цифр в числе: {0}", digit);
            Console.WriteLine("Максимальная цифра в числе: {0}", maxDigit);
            Console.WriteLine("Минимальная цифра в числе: {0}", minDigit);
        }

        static void DoFourthTask()
        {
            Console.WriteLine("Квадраты чисел от 10 до 20:");
            int i = 10;
            long square;
            do
            {
                square = i * i;
                Console.WriteLine(square);
                i++;
            } while (i <= 20);

            Console.ReadKey();

        }

        static void MaxNumber()
        {
            Console.Clear();
            double maxNumber = double.NegativeInfinity;
            Console.WriteLine("Определение максимального числа из пяти введенных");
            int i = 0;

            do
            {
                Console.WriteLine("Введите число:");
                double enteredNumber = Double.Parse(Console.ReadLine());
                if (enteredNumber > maxNumber)
                {
                    maxNumber = enteredNumber;
                }
                i++;
            } while (i < 5);
            Console.WriteLine("Максимальное число из введенных: {0}", maxNumber);
        }

        static void Amoebas()
        {
            Console.Clear();
            int amoebas = 1;
            for (int hours = 0; hours <= 24; hours = hours + 3)
            {
                Console.WriteLine("Количество амеб через {0} ч: {1}", hours, amoebas);
                amoebas *= 2;
            }

        }

        static void NaturalNumbers()
        {
            Console.Clear();
            Console.WriteLine("Будут выведены натуральные числа от 20 до 50,");
            Console.WriteLine("которые делятся на 3, но не делятся на 5.");
            Console.WriteLine();
            Console.WriteLine("Нажмите Enter для продолжения");
            Console.ReadKey();
            Console.Clear();
           
           for (int number = 20; number<50; number++)
            {
                if ((number % 3==0)&&(number%5!=0))
                    Console.WriteLine(number);
            }

        }

        static void BankSimplePercent()
        {
            Console.Clear();
            Console.WriteLine("Введите стартовую сумму, грн:");
            decimal startMoney = Decimal.Parse(Console.ReadLine());
            Console.WriteLine("Введите количество лет:");
            int years = Int32.Parse(Console.ReadLine());
            decimal finishMoney = (startMoney*(1+(years*0.03m)));
            Console.WriteLine("Итоговая сумма вклада составит {0} UAH", finishMoney);
            int a = 256;
            double d = a;
            short b = (short)a;

            char c = 't';
            byte c2 = (byte)c;
            ushort c3 = (ushort)c;
            Console.WriteLine(d);
            Console.WriteLine(c2);
        }
    }
}

